/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package fr.fvaz.footballmanager.beans;

import java.io.Serializable;
import java.util.Date;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 *
 * @author felipe
 */
@Entity(name="club")
public class Club implements Serializable {
    
    @Id
    @GeneratedValue(strategy= GenerationType.AUTO)
    private Long idClub;
    
    private String nom;
    
    private String surnom;
    
    @Temporal(TemporalType.DATE)
    private Date fondation;
    
    private String url;
    
    private String telephone;
    
    private String mail;
    
    @OneToMany(mappedBy="club")
    private Set<Joueur> joueurs = new HashSet<Joueur>();

    public Club() {}

    public Club(Long idClub, String nom, String surnom, Date fondation, String url, String telephone, String mail) {
        
        this.nom = nom;
        this.surnom = surnom;
        this.fondation = fondation;
        this.url = url;
        this.telephone = telephone;
        this.mail = mail;
        
    }

    /**
     * @return the idClub
     */
    public Long getIdClub() {
        return idClub;
    }

    /**
     * @param idClub the idClub to set
     */
    public void setIdClub(Long idClub) {
        this.idClub = idClub;
    }

    /**
     * @return the nom
     */
    public String getNom() {
        return nom;
    }

    /**
     * @param nom the nom to set
     */
    public void setNom(String nom) {
        this.nom = nom;
    }

    /**
     * @return the surnom
     */
    public String getSurnom() {
        return surnom;
    }

    /**
     * @param surnom the surnom to set
     */
    public void setSurnom(String surnom) {
        this.surnom = surnom;
    }

    /**
     * @return the fondation
     */
    public Date getFondation() {
        return fondation;
    }

    /**
     * @param fondation the fondation to set
     */
    public void setFondation(Date fondation) {
        this.fondation = fondation;
    }

    /**
     * @return the url
     */
    public String getUrl() {
        return url;
    }

    /**
     * @param url the url to set
     */
    public void setUrl(String url) {
        this.url = url;
    }

    /**
     * @return the telephone
     */
    public String getTelephone() {
        return telephone;
    }

    /**
     * @param telephone the telephone to set
     */
    public void setTelephone(String telephone) {
        this.telephone = telephone;
    }

    /**
     * @return the mail
     */
    public String getMail() {
        return mail;
    }

    /**
     * @param mail the mail to set
     */
    public void setMail(String mail) {
        this.mail = mail;
    }

    /**
     * @return the joueurs
     */
    public Set<Joueur> getJoueurs() {
        return joueurs;
    }

    /**
     * @param joueurs the joueurs to set
     */
    public void setJoueurs(Set<Joueur> joueurs) {
        this.joueurs = joueurs;
    }
    
    /**
     * Ajoute un nouveau joueur au club
     * @param joueur 
     */
    public void addJoueur(Joueur joueur) {
        this.joueurs.add(joueur);
    }
    
}
